Implementation and uses of XsRGB

ABSTRACT

An extended colorspace which has a higher accuracy and a wider gamut than sRGB color space is disclosed. The extended color space includes an alpha channel which defines the translucency of the color image. The alpha channel is different from known alpha channels in that the inventive alpha channel can represent “super transparent” and “super opaque” values by allowing the alpha parameter (α) to be greater than 1 and less than 0. A data structure for storing the extended colorspace information has three fields, a sign field, an integer field and a decimal field. The sign field defines whether an integer is negative or positive. The integer field defines the integer, wherein the integer defines the super or under saturated values for color and alpha components. The decimal field defines the fine detailed information for the value of the color and alpha components.

TECHNICAL FIELD

[0001] The present invention relates to colorspace interchange and moreparticularly, to a new color format that can be used for a referencecolor frame and for internal color space for image processing.

BACKGROUND OF THE INVENTION

[0002] Communication of color information between different devices andindustries has become recognized as an important issue. Each industrygenerally has its own color management history, with its own terminologystandards and methods for communicating color information. As more usersare connecting different peripheral devices made by different companiesand, in addition, communicate with one another over the Internet, it isbecoming more urgent to have a standardized color data management schemethat provides consistent color data management. Many different practicesand standards are currently being used.

[0003] Different phosphor sets are being used to provide the colors of“red”, “green”, and “blue”. For example, where a monitor may illustratea pink color, and the user selects the pink color, the printer printingthe selection may print out an ugly purple/lavender. This, differentvalues on chromaticity diagrams represent a same color, providingconfusion. Tone reproduction of various systems also differs. Also,viewing conditions may vary, causing colors to appear different todifferent observers. Thus, due to differing visual conditions, the colorof the illuminant (the white point), the absolute level of the sceneirradiance (generally the illuminance), the surrounding colors, etc.,all affect the color perception unless the initial and final conditionsare identical. Unless a white point and illuminance level are the same,the color interchange data may not be identical.

[0004] Previous color data conversion methods have required the use ofcube root computation or raising values to the third power. To storedata, every pixel had to be converted using a set of power functionroutines. This process is time-consuming, consumes processing power, andmay introduce errors. Other techniques, such as is described in U.S.Pat. No. 5,224,178, by Madden et al., provide for compressing digitalcode values to provide a set of reduced range digital codes of a sameresolution, but having a smaller range of basic image content valuesthan the dynamic range of the digitized image data base.

[0005] As shown in FIG. 1 the chromaticity diagram has been developed bythe Commission Internationale de l'Eclairage (CIE), or InternationalCommission on Illumination, to provide a common chromaticity value forcolors. The displayable colors by a laser device are shown as a triangleABC, with points A 102, B 104, and C 106. Ideally, color values for adevice should cover a triangle having an area that extends over theentire visible range. However, as shown in FIG. 2, the triangle coveredfor color values of a Canon CLC500 color copier/printer 202 is shownalong with the old RGB color values (Genl. RGB) 204, the first PC colormonitors and the sRGB values 206. While some of the cyan colors arelimited by sRGB, the brightest greens and reds are output devicelimited, but not sRGB limited. Clearly, calculations must be used toconvert values of the color copier/printer 202 colors to the ordinaryCRT colors (sRGB values) 206.

[0006] Although lasers have virtually monochromatic output and theprimaries of the laser would reside on the spectrum locus of the CIE(International Commission on Illumination) diagram of FIG. 1, showing 2degree observer data, typically devices do not have the gamut to displaythe laser colorspace. Thus, data in a laser display colorspace wouldhave to be converted for display and printing.

[0007] Cathode display tubes (CRTs), color flat panels (both active andpassive matrix types) and high definition televisions (HDTVs) providechromaticity diagrams that are similar to the CRT model shown in FIG. 2.However, the sRGB chromaticity diagram lacks a range of gamut thatincludes all colors, and conversion of sRGB color data values isnon-linear, thus often resulting in undesired results.

[0008] Advanced graphic systems require the features of anti-aliases(removing ragged edges) and blending (translucency) effects. Thoseeffects are handled by an extra component, called the alpha channel, inaddition to the RGB components. In order to perform the anti-alias andblending operations correctly with the alpha channel, the linear colorcomponents need to be defined in terms of their intensities. Currentsystems are however limited to the intensity values between 0 and 1,which do not provide optimal results in some circumstances.

SUMMARY OF THE INVENTION

[0009] One aspect of the invention relates to an extended colorspacewhich has a higher accuracy and a wider gamut than sRGB color space. Theextended color space includes an alpha channel which defines thetranslucency of the color image. The alpha channel is different fromknown alpha channels in that the inventive alpha channel can represent“super transparent” and “super opaque” values by allowing the alphaparameter (α) to be greater than 1 and less than 0.

[0010] A data structure for storing image information for each componentof an image is also disclosed. The data structure has three fields, asign field, an integer field and a decimal field. The sign field defineswhether an integer is negative or positive. The integer field definesthe integer, wherein the integer defines the super or under saturatedvalues for color and alpha components. The decimal field defines thefine detailed information for the value of the color and alphacomponents.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011]FIG. 1 is a schematic graphical representation of a laser displaycolorspace upon a CIE colorspace that shows the full gamut of the visualspectrum as is known in the art.

[0012]FIG. 2 is a schematic graphical representation of colorspaces fora representative Canon CLC500 color copier/printer, General RGB colorvalues, and sRGB values upon a CIE colorspace diagram as is known in theart.

[0013]FIG. 3 is a schematic graphical representation of a colorspace inaccordance with embodiments of the invention.

[0014]FIG. 4 is a block diagram of an apparatus in a digitized imageprocessing system for converting color images in accordance withembodiments of the invention.

[0015]FIG. 5 is a block diagram of a computer system that may be used toimplement embodiments of the invention.

[0016]FIG. 6 illustrates the alpha value as aninterpolation/extrapolation parameter according to embodiments of theinvention.

[0017]FIG. 7 illustrates a RGB48 color format according to embodimentsof the invention.

[0018]FIG. 8 illustrates an ARGB64 color format according to embodimentsof the invention.

[0019]FIG. 9 illustrates a data structure for storing image informationfor each color component according to embodiments of the invention.

[0020] FIGS. 10(a)-10(e) illustrate various stages of color dataaccording to embodiments of the invention.

DETAILED DESCRIPTION

[0021] As shown in FIG. 3, extending the range of color data values forthe chromaticity diagram for sRGB beyond 1.0 and below 0.0 on the x andy axes is illustrated by the triangle DEF 302, 304, 306, so that thepresent invention provides a chromaticity diagram that encompasses allvisible color values. For example, in one embodiment, color data valuesmay be expressed in a signed 16-bit integer (13 bits are used fordecimals) with a triangle corresponding to (3.24, −0.97, 0.06), (−1.54,1.88, −0.20), and (−0.50, 0.04, 1.01), thus covering each componentwithin −4 to 4.

[0022] By allowing the component of each primary color to be negativeand to extend beyond 1.0 (when normalized to 1.0 in sRGB), the presentinvention's gamut is larger than the visible color space. The datascheme of the present invention, “XsRGB”, is also known as “sRGB64.“XsRGB” will be used hereafter to represent the color data scheme ofeither XsRGB or sRGB64.

[0023] Advanced graphic systems require anti-aliasing features (removingragged edges) and blending (translucency) effects. To achieve theseanti-aliasing features and blending effects, an extra component calledan “alpha channel” was introduced. To utilize the alpha channel, thelinear color components must be expressed in terms of their intensities.However, sRGB and other color management systems typically store colordata values in non-linear 8-bit values per channel. The non-linearity isexpressed as a “gamma value”. For example, Microsoft's and Apple's colormanagement systems are 2.2 and 1.8, respectively. When only 8 bits wereavailable for color data value representation, it was necessary toconvert the color data non-linearly. Otherwise, it created a large gapin the lower intensity values and causing the resulting images to showcontours. However, when the size of each component is extended to higherbit (12 bit or higher), the non-linearity requirement is eliminated.Thus, in an embodiment with 12 or more bits for each component,component values do not have to be non-linearized, avoiding confusion ofdifferent gamma values in different color standards. When the superluminous or negative values are allowed, color profiles do not requireclipping to a narrower gamut. Since, in this embodiment, color valuesare standardized, standard images may be stored in the XsRGB formatwithout attaching a standardized profile such as an ICC (InternationalColor Consortium) profile to clarify the colors intended. Where desired,an alpha channel may be implemented to store information ontransparency. Also, where selected, the color values may bepremultiplied by alpha channel values to provide efficient blending.

[0024] It is better to define XsRGB more generally by a 4×4 matrix.Also, there is a conversion rule for XsRGB with a different white point.

[0025] XsRGB is linear in the visual intensity of each component. Hence,XsRGB can relate linearly to 1931 CE XYZ values. Let R₀, G₀, and B₀denote the normalized red, green, and blue components, respectively. LetX, Y, and Z denote 1931 CIE XYZ values, but Y is normalized to 1 insteadof 100. The relationship between the normalized XsRGB and XYZ is givenby a 4×4 matrix. $\begin{matrix}{{\begin{pmatrix}R_{0} \\G_{0} \\B_{0} \\1\end{pmatrix} = {M\begin{pmatrix}X \\Y \\Z \\1\end{pmatrix}}},{where}} & \left( {1a} \right) \\{M = \begin{bmatrix}m_{RX} & m_{RY} & m_{RZ} & t_{R} \\m_{GX} & m_{GY} & m_{GZ} & t_{G} \\m_{BX} & m_{BY} & m_{BZ} & t_{B} \\0 & 0 & 0 & 1\end{bmatrix}} & \left( {1b} \right)\end{matrix}$

[0026] Only 12 coefficients are needed to define XsRGB. In addition tothe rotational part (m_(RZ), etc.), the transitional part (t_(R), etc.)is used. With this notation, the white point may be addressed as well asthe black point. Using the inverse of the above matrix, the reverserelation from XsRGB to CIE XYZ space is given by: $\begin{matrix}{{\begin{pmatrix}X \\Y \\Z \\1\end{pmatrix} = {M^{- 1}\begin{pmatrix}R_{0} \\G_{0} \\B_{0} \\1\end{pmatrix}}}{where}} & \left( {2a} \right) \\{M^{- 1} = \begin{bmatrix}n_{XR} & n_{XG} & n_{XB} & u_{X} \\n_{YR} & n_{YG} & n_{YB} & u_{Y} \\n_{ZR} & n_{ZG} & n_{ZB} & u_{Z} \\0 & 0 & 0 & 1\end{bmatrix}} & \left( {2b} \right)\end{matrix}$

[0027] A 16 bit definition of RGB components is given by:$\begin{matrix}{\begin{bmatrix}R_{16} \\G_{16} \\B_{16}\end{bmatrix} = {8192 \times \begin{bmatrix}R_{0} \\G_{0} \\B_{0}\end{bmatrix}}} & \left( {2c} \right)\end{matrix}$

[0028] In equation (2c), no gamma corrections are required since asufficient number of bits are available to describe the color data(here, 16 bits).

[0029] It is desirable for XsRGB to have a simple transform to sRGB inD65. D50 and D65 are the standard illuminans (the spectrum distributionsof the light source) defined by CIE. D50 and D65 are the spectrumdistributions similar to the Black Body radiation of 5000 and 6500Kelvin, respectively. Indeed, it is desirable for XsRGB to be identicalto sRGB when its value is inside the range of sRGB. From the sRGBspecification, the coefficients of Eq. (1b) and Eq. (2b) are determinedas: $\begin{matrix}{{M_{D65} = \begin{bmatrix}3.2410 & {- 1.5374} & {- 0.4986`} & 0 \\{- 0.9692} & 1.8760 & 0.0416 & 0 \\0.0556 & {- 0.2040} & 1.0570 & 0 \\0 & 0 & 0 & 1\end{bmatrix}}{and}} & \left( {3a} \right) \\{M_{D65}^{- 1} = \begin{bmatrix}0.4124 & 0.3576 & 0.1805 & 0 \\0.2126 & 0.7152 & 0.0722 & 0 \\0.0193 & 0.1192 & 0.9505 & 0 \\0 & 0 & 0 & 1\end{bmatrix}} & \left( {3b} \right)\end{matrix}$

[0030] The white point of D65 is (x_(D65), y_(D65))=(0.3127, 0.3291);the corresponding CIE XYZ values are $\begin{matrix}\left\{ \begin{matrix}{X_{D65} = {{x_{D65}/y_{D65}} = 0.9502}} \\{Y_{D65} = 1.0} \\{Z_{D65} = {{\left( {1.0 - x_{D65} - y_{D65}} \right)/y_{D65}} = 1.0887}}\end{matrix} \right. & (4)\end{matrix}$

[0031] Note that the Y-value at the white point is 1. When the devicehas the different white point (X_(w), Y_(w), Z_(w)), the CIE XYZcoordinates for the appearance match must be transformed by the scalingmatrix. $\begin{matrix}{S_{w} = \begin{bmatrix}{X_{D65}/X_{w}} & 0 & 0 & 0 \\0 & 1 & 0 & 0 \\0 & 0 & {Z_{D65}/Z_{w}} & 0 \\0 & 0 & 0 & 1\end{bmatrix}} & \left( {5a} \right)\end{matrix}$

[0032] and its inverse is $\begin{matrix}{S_{w}^{- 1} = \begin{bmatrix}{X_{w}/X_{D65}} & 0 & 0 & 0 \\0 & 1 & 0 & 0 \\0 & 0 & {Z_{w}/Z_{D65}} & 0 \\0 & 0 & 0 & 1\end{bmatrix}} & \left( {5b} \right)\end{matrix}$

[0033] The transformation matrix from XYZ to XsRGB at this white pointis given by

M _(w) =M _(D65) S _(w)   (6a)

[0034] and its transverse matrix is given by

M _(w) ⁻¹ =S _(w) ⁻¹ M _(D65) ⁻¹   (6b)

[0035] For an example, the white point of D50 is(x_(D50),y_(D50))=(0.3457,0.3585). The corresponding CIE XYZ value is(X_(D50),Y_(D50),Z_(D50))=(0.9643,1,0.8251). Hence the scaling matricesare $\begin{matrix}{{S_{D50} = \begin{bmatrix}0.9854 & 0 & 0 & 0 \\0 & 1.0 & 0 & 0 \\0 & 0 & 1.3195 & 0 \\0 & 0 & 0 & 1\end{bmatrix}}{and}} & \left( {7a} \right) \\{S_{D50}^{- 1} = \begin{bmatrix}1.0148 & 0 & 0 & 0 \\0 & 1.0 & 0 & 0 \\0 & 0 & 0.7579 & 0 \\0 & 0 & 0 & 1\end{bmatrix}} & \left( {7b} \right)\end{matrix}$

[0036] The resultant transformation matrices for D50 are:$\begin{matrix}{{M_{D50} = \begin{bmatrix}3.1937 & {- 1.5374} & {- 0.6579} & 0 \\{- 0.9550} & 1.8760 & 0.0549 & 0 \\0.0548 & {- 0.2040} & 1.3947 & 0 \\0 & 0 & 0 & 1\end{bmatrix}}{and}} & \left( {8a} \right) \\{M_{D50}^{- 1} = \begin{bmatrix}0.4185 & 0.3629 & 0.1832 & 0 \\0.2126 & 0.7152 & 0.0722 & 0 \\0.0146 & 0.0903 & 0.7204 & 0 \\0 & 0 & 0 & 1\end{bmatrix}} & \left( {8b} \right)\end{matrix}$

[0037] The appearance match is obtained if the XsRGB values arecalculated from the conversion matrix of the device white point. Theabsolute match may be obtained if the conversion matrix of D65 is usedirrespective of the device white point.

[0038] Let (R_(w), G_(w), B_(w)) denote the normalized RGB valueobtained with the matrix M_(w) defined in Eq. (6a) for the specificwhite point. The (R_(w), G_(w), B_(w)) value is used to do theappearance match and is called the appearance RGB value. When theabsolute match is needed, the RGB values (R₀, G₀, B₀) are used by usingthe matrix M_(D65) defined in Eq. (3a), which is called the absolute RGBvalue. The absolute RGB value is obtained from the appearance RGB valueby the following equation: $\begin{matrix}{\begin{pmatrix}R_{0} \\G_{0} \\B_{0} \\1\end{pmatrix} = {M_{D65}S_{w}^{- 1}{M_{D65}^{- 1}\begin{pmatrix}R_{w} \\G_{w} \\Z_{w} \\1\end{pmatrix}}}} & \left( {9a} \right)\end{matrix}$

[0039] The reverse relation is obtained as: $\begin{matrix}{\begin{pmatrix}R_{w} \\G_{w} \\B_{w} \\1\end{pmatrix} = {M_{D65}S_{w}{M_{D65}^{- 1}\begin{pmatrix}R_{0} \\G_{0} \\Z_{0} \\1\end{pmatrix}}}} & \left( {9b} \right)\end{matrix}$

[0040] Since the XsRGB space is directly linked to CIE XYZ space, it ispossible to produce the XsRGB measuring device. The new XsRGB device maybe produced by adding the matrix conversion routines to the existingcolorimeters. XsRGB values may be measured directly from the device. Thedevice may produce the appearance RGB values and the absolute RGBvalues.

[0041] The default XsRGB space is the case of D65 that is linked tosRGB. Since there is no translational part, Eq. (1a) with M=M_(D65) canbe written with a 3×3 matrix as: $\begin{matrix}{\begin{pmatrix}R_{0} \\G_{0} \\B_{0}\end{pmatrix} = {\begin{bmatrix}3.2410 & {- 1.5374} & {- 0.4986} \\{- 0.9692} & 1.8760 & 0.0416 \\0.0556 & {- 0.2040} & 1.0570\end{bmatrix}\begin{pmatrix}X \\Y \\Z\end{pmatrix}}} & (10)\end{matrix}$

[0042] Allowing each component to go from −4 to 4 by X, Y, Z values,wherein X, Y, and Z denote 1931 CIE XYZ values wherein Y has beennormalized to 1 instead of 100, covers a range larger than the rangecovered by XYZ. The equation (10) provides one embodiment of a floatingpoint format for XsRGB. When the 16 bit version of XsRGB is utilized, asigned 16 bit integer is used and 8192 (=2¹³) is interpreted as 1 in thenormalized value. Hence, the lowest 13 bits are used for the decimalportion.

[0043] Conversion from 16 bit color data for the XsRGB format to an 8bit sRGB format is as follows: Let C₁₆ and C₈ denote one of thecomponents in 16 bit XsRGB format and 8 bit sRGB format, respectively.The relationships are:

C ₀ ≡C ₁₆/8192 (Corresponding to the normalized linear XsRGB)

C₈=0 for C₁₆<0

C ₈=12.92×C ₀×255 for 0≦C ₀<0.00304 (0≦C ₁₆≦24)

C ₈=(1.055×C ₀ ^((1.0/2.4))−0.055)×255 for 0.00304≦C ₀<1 (25≦C ₁₆<8192)

C₈=255 for C₀≧1 (C₁₆≧8192)  (11)

[0044] The above conversions correspond to clipping below 0 and above8192 of the 16 bit XsRGB when converting to 8 bit sRGB. The clippingroutine may be further modified as desired.

[0045] The reverse relationships are:

C ₁₆=2.4865×C ₈ for 0≦C ₈≦10

C ₁₆=8.192×[(C ₈+14.025)/269.025]^(2.4) for 11≦C ₈≦255   (12)

[0046] The extension of sRGB in accordance with the present inventionprovides a number of advantages. For example, blending operations withan alpha channel may be directly applied to XsRGB since XsRGB is linear.The XsRGB profiles may easily be obtained from the CIE XYZ profiles.When XsRGB is used for color reference, there is no need to rotate colorcomponents to display each component in an 8 bit sRGB device. Only gammacorrection described in (Eq. 12) above need be used to convert to 8 bitsRGB. Even without an exact calibration, XsRGB yields satisfactoryconversion for output for color monitors. The scanned images maygenerally be stored in XsRGB format without losing bit depths since mostscanners produce data in not more than 12 bits in each color component.

[0047]FIG. 4 is a block diagram of one embodiment of an apparatus in adigitized image processing system for converting color images inaccordance with the present invention. In the digitized image processingsystem 402, an image digitizer 404 that utilizes color image informationto output digital signals representing a color image to the apparatus406 that converts the digital signals to a high quality error-freeexpanded colorspace color image. The apparatus 406 includes: an expandedcolorspace mapper 408, for mapping the digital signals to expandedcolorspace values wherein the expanded colorspace values include valuesbeyond a visible range of color values; and an image labeller 410,coupled to the expanded colorspace mapper 408, for labeling an imagedetermined by expanded colorspace values as an expanded colorspaceimage. The expanded colorspace may include a colorspace defined by achromaticity diagram that extends into negative component values andbeyond 1.0 when normalized to 1.0 in sRGB. The expanded colorspacemapper may utilize multiplication of R₀, G₀, B₀ values by apredetermined matrix to map the color values to an expanded colorspace.The R₀, G₀, B₀ values may be obtained using equation (9). Where desired,the color data values and their bit components, clipping, transparencyinformation storage and premultiplication and normalization of colordata values may be as described for the methods above.

[0048] Color operations defined in the RGB/ARGB colorspace may beextended to the expanded RGB/ARGB colorspace. Three examples of coloroperations in the expanded RGB/ARGB colorspace include:

[0049] 1. Interpolation between two RGB colors X=(R_(x), G_(x), B_(x))and Y=(R_(y), G_(y), B_(y)). The RGB color Z=(R_(z), G_(z), B_(z)) thatis linearly interpolated between X and Y is given by:

R _(z)=(1−d)R _(x) +dR _(y)

G _(z)=(1−d)G _(x) +dG _(y)

B _(z)=(1−d)B _(x) +dB _(y)

[0050] where d is the normalized distance of Z from X to Y, and d=0 at Xand d=1 at Y.

[0051] 2. Digital image composition operations that combine twonon-premultiplied RGBA colors. For example, one of the operations, Xover Y, where X=(A_(x), R_(x), G_(x), B_(x)) and Y=(A_(y), R_(y), G_(y),B_(y)), produces color Z=(A_(z), R_(z), G_(z), B_(z)). The formula isgiven by:

R _(z) =A _(x) R _(x)+(1−A _(x))R _(y)

G _(z) =A _(x) G _(x)+(1−A _(x))G _(y)

B _(z) =A _(x) B _(x)+(1−A _(x))B _(y)

A _(z) =A _(x) A _(x)+(1−A _(x))A _(y)

[0052] Note that this formula does not allow associativity for the orderof the operations contrast to the premultiplied ARGB case discussedbelow;

[0053] 3. Image convolution operations: For example, a blur filtermatrix M is given by: $\begin{bmatrix}{1/16} & {1/8} & {1/16} \\{1/8} & {1/4} & {1/8} \\{1/16} & {1/8} & {1/16}\end{bmatrix}\quad$

[0054] The blur equation is for each color component. Assuming a RGBcolor component of a pixel at location (i, j) is C(i,j), the resultingRGB color component of the pixel after the blur operation is given by:

(1/16)C(i−1, j−1)+(1/8)C(i−1, j)+(1/16)C(i−1, j'

[0055] Besides these examples, the illumination and shading used in 3Dgraphics can be applied XsARGB space.

[0056] With reference to FIG. 5, an exemplary system for implementingthe invention includes a general purpose computing device in the form ofa conventional personal computer 520, including a processingunit/processor 521, a system memory 522, and a system bus 523 thatcouples various system components including the system memory to theprocessing unit/processor 521. The system bus 523 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. The system memory includes read only memory (ROM) 524 andrandom access memory (RAM) 525. A basic input/output system 526 (BIOS),containing the basic routines that helps to transfer information betweenelements within the personal computer 520, such as during start-up, isstored in ROM 524. The personal computer 520 further includes a harddisk drive 527 for reading from and writing to a hard disk, not shown, amagnetic disk drive 528 for reading from or writing to a removablemagnetic disk 529, and an optical disk drive 530 for reading from orwriting to a removable optical disk 531 such as a CD ROM or otheroptical media. The hard disk drive 527, magnetic disk drive 528, andoptical disk drive 530 are connected to the system bus 523 by a harddisk drive interface 532, a magnetic disk drive interface 533, and anoptical drive interface 534, respectively. The drives and theirassociated computer-readable media provide nonvolatile storage ofcomputer readable instructions, data structures, program modules andother data for the personal computer 520. Although the exemplaryenvironment described herein employs a hard disk, a removable magneticdisk 529 and a removable optical disk 531, it should be appreciated bythose skilled in the art that other types of computer readable mediawhich can store data that is accessible by a computer, such as magneticcassettes, flash memory cards, digital video disks, Bernoullicartridges, random access memories (RAMs), read only memories (ROMs),and the like, may also be used in the exemplary operating environment.

[0057] A number of program modules may be stored on the hard disk,magnetic disk 529, optical disk 531, ROM 524, or RAM 525, including anoperating system 535, one or more application programs 536, otherprogram modules 537 and program data 538. A user may enter commands andinformation into the personal computer 520 through input devices such asa keyboard 540 and pointing device 542. Other input devices (not shown)may include a microphone, joystick, game pad, satellite dish, scanner orthe like. These and other input devices are often connected to theprocessing unit 521 through a serial port interface 546 that is coupledto the system bus, but may be connected by other interfaces, such as aparallel port, game port or a universal serial bus (USB). A monitor 547or other type of display device is also connected to the system bus 523via an interface, such as a video adapter 548. In addition to themonitor, personal computers typically include other peripheral outputdevices (not shown) such as speakers and printers.

[0058] The personal computer 520 may operate in a networked environmentusing logical connections to one or more remote computers, such as aremote computer 549. The remote computer 549 may be another personalcomputer, a server, a router, a network PC, a peer device or othercommon network node, and typically includes many or all of the elementsdescribed above relative to the personal computer 520, although only amemory storage device 550 has been illustrated in FIG. 5. The logicalconnections depicted in FIG. 5 include a local area network (LAN) 551and a wide area network (WAN) 552. Such networking environments arecommonplace in offices, enterprise-wide computer networks, intranets andthe Internet.

[0059] When used in a LAN networking environment, the personal computer520 is connected to the local network 551 through a network interface oradapter 553. When used in a WAN networking environment, the personalcomputer 520 typically includes a modem 554 or other means forestablishing communications over the wide are network 552, such as theInternet. The modem 554, which may be internal or external, is connectedto the system bus 523 via the serial port interface 546. In a networkedenvironment program modules depicted relative to the personal computer520, or portions thereof, may be stored in the remote memory storagedevice. It will be appreciated that the network connections shown areexemplary and other means of establishing communications between thecomputers may be used.

[0060] According to one embodiment of the invention, an alpha channel isused to convey transparency information about a color and is referred toas “XsARGB”. For XsARGB, an additional 16 bit component is used to storetransparency information. First, a normalized alpha channel A₀ will beintroduced. The values 0 and 1 of A₀ are regarded as transparent andopaque, respectively. The four components (A₀, R₀, G₀, B₀) constitutesone color value. If each component is multiplied by 8192 we obtain theXsARGB component (A₁₆, R₁₆, G₁₆, B₁₆). This component is called thenon-premultiplied XsARGB and (A₀, R₀, G₀, B₀) is called the normalizednon-premultiplied XsARGB. The discussion of premultiplied colors willnow be discussed.

[0061] When an image B is laid on top of an image A, the resultant imageP has the pixel value

p=βb+(1−β)a   (14)

[0062] where a and b are a color component of the images A and B at acertain pixel and β is the alpha channel of the image B at that pixel.An image C can be laid on top of the image P to create another image. Wewant to create the overlay formula so that the final result does notdepend on the order (associativity).

C⊕(B⊕A)=(C⊕B)⊕A   (15)

[0063] Let D denote the image created by C and B and one of its colorcomponents and alpha value d and δ, respectively. The equation (9) foreach color component can be written as

γc+(1−γ)[βb+(1−β)a]=δd+(1−δ)a   (16)

[0064] where c and γ are one of color components and alpha value of theimage C at the pixel of interest. Comparing the coefficients of a, thealpha value of the composited image D must be

δ=β+γ−γβ  (17)

[0065] Comparing the rest of the equation (16), the value of the colorcomponent, d, multiplied by its alpha value, δ, are given by

δd=γc+(1−γ)βb   (18)

[0066] Notice that in equation (18) the color components are alwaysmultiplied by their alpha values. Hence, it is efficient to work withcolor components that are already multiplied by their alpha values.Those colors are called premultiplied colors.

[0067] When blending operations are processed, it is more efficient touse RGB values which are multiplied by the alpha value. The fourcomponents (A₀, R′₀, G′₀, B′₀) where R′₀=A₀R₀, G′₀=A₀G₀, and B′₀=A₀B₀,are called normalized premultiplied XsRGB. By multiplying each componentby 8192, the XsARGB component (A₁₆, R′₁₆, G′₁₆, B′₁₆) is obtained. Thiscomponent is called the premultiplied XsARGB.

[0068] According to one embodiment of the invention, the alpha value A₀is allowed to go above 1 and below zero. The meaning of the alpha valuecan be considered in the following way. When a source image, S, isoverlaid to the destination image, D the resultant image, D′ isobtained, as

d′=αs+(1−α)d   (19)

[0069] where s, d, and d′ are one of the normalized color components ofthe image S, D, and D′ at the corresponding pixels, respectively, and ais the alpha value of the source image S at the considering pixel. Whenα=0, the resultant image remains the same as the destination image. Thiscase is called transparent. When α=1, the resultant image is the same asthe source image. This case is called opaque. When α is between 0 and 1,the resultant image is the mixed image between the source anddestination images. Usually α is a translucency parameter rangingbetween transparent (=0) to opaque (=1). However, if equation (12) isstudied, it will be noticed that equation (12) is nothing but aninterpolation equation. Hence, when α<0 or α>1, equation (12) is verywell defined and it is extrapolating the source and destination images.FIG. 6 shows the alpha value as an interpolation/extrapolationparameter. The invention allows α to be smaller than 0 or larger than 1,wherein α< is called “super transparent” and α>1 is called “superopaque.”

[0070] When a XsRGB (16 bit each component) color is put into a memory,bits 0-15 are the blue component, bits 16-31 are the green component,and bits 32-47 are the red component as illustrated in FIG. 7. Eachcomponent is a signed 16 bit integer. The value 8192 is interpreted as1.0. When it is saved into a file, Intel's Little Endian convention putthe first two bytes for the blue component, the next two bytes for thegreen component, and the subsequent two bytes for the red component.This color format is called RGB48.

[0071] Either premultiplied or non-premultiplied, the data structure ofXsARGB (16 bit each component) remains the same. When a XsARGB (16 biteach component) color is put into a memory, bits 0-15 are the bluecomponent, bits 16-31 are the green component, bits 32-47 are the redcomponent, and bits 48-63 are the alpha component as illustrated in FIG.8. Each component is a signed 16 bit integer. The value 8192 isinterpreted as 1.0. When it is saved into a file, Intel's Little Endianconvention put the first two bytes for the blue component, the next twobytes for the green component, and the subsequent two bytes for the redcomponent, and the last two bytes for the alpha component. This colorformat is called ARGB64.

[0072] When the data is stored linearly, even the 16 bit scale may notbe sufficient to store the detailed shades. When more details arerequired for the certain range of each component, a special range can beassigned in each component. When each component is normalized, theformat can allow each component to vary from −4 to +4. However, mostvalues lie within 0 to 1. Special ranges can be assigned in −4 to +3, −3to −2, 2 to 3, and 3 to 4 to have different scales from the defaultXsRGB and XsARGB. A user can specify those ranges and define it in theimage header. Hence XsRGB and XsARGB can contain multi-color resolutiondata.

[0073] The variation of color format for lower bit depths can bedefined. The possible formats are as follows:

[0074] 32 bit XsRGB—10 bit in each component (8 bit decimal field) and 2bit extra.

[0075] 36 bit XsRGB—12 bit each component (10 bit decimal field).

[0076] 40 bit XsRGB—13 bit each component (11 bit decimal field) and 1bit extra.

[0077] 40 bit XsARGB—10 bit each component (8 bit decimal field).

[0078] 48 bit XsARGB—12 bit each component (10 bit decimal field).

[0079] As illustrated in FIG. 9, the data structure for storing imageinformation for each color component of the image is divided intoseveral fields. The first field is a one bit sign field 901 for definingwhether an integer value representing the bound of colorspace ispositive or negative. The second field is the integer field 903. Theinteger field defines the value of the bounds of the colorspace. Theinteger field comprises at least one bit. If the integer field comprisesone bit, the integer can be equal to one of two integer values. If theinteger field comprises two bits, the integer can be equal to one offour possible integer values. The third field is a decimal field 905which defines color data information regarding the color value of thecomponent. The more bits that the decimal field contains, the greaterthe number of color values the component can be assigned. For example,if the decimal field comprises 9 bits, the color values can range from 0to 511, and if the decimal field comprises 10 bits, the color values canrange between 0 and 1023. Thus, there is a tradeoff between how manybits to allot to the integer field and the decimal field.

[0080] In addition to the higher accuracies, RGB48 and ARGB64 have theextra ranges below 0 and beyond 1 (in terms of the normalized values).This gives significant advantages in images filtering. For example,suppose a series of filters, ƒ₁, ƒ₂, . . . , ƒ_(n) is applied. In eachfilter, the component value may go below 0 or go above 1. If the colorvalue is truncated in each filter, the correct result may not beobtained in the end. For an example, $\begin{matrix}\left\{ \begin{matrix}{{f_{1}(x)} = {x - 0.5}} \\{{f_{2}(x)} = {x + 0.5}}\end{matrix} \right. & (20)\end{matrix}$

[0081] The correct result of ƒ₂∘ƒ₁(x)≡ƒ₂(ƒ₁(x)) should be x itself.However, ƒ₁ is truncated between 0 and 1, the result of ƒ₂∘ƒ₁(x) becomes0.5 for all x<0.5.

[0082] The existing image format forces the resultant image to beclipped in each filter. Hence, the final result is likely to beincorrect. This will cause artifacts to appear in the image. With theexcess range in the color space of the invention, the intermediateresults are not clipped. Only the final result is clipped to the rangeof the output device. To further illustrate this point, FIG. 10(a)illustrates the color data for a red component which has a peak value of200. If the red component is shifted by some operation by 120, some ofthe color data will be greater than 255. The color data which has avalue greater than 255 is clipped to equal 255 as illustrated in FIG.10(b). If the red component is then shifted back to its originalposition, the peak values of the red component are now only equal to 135as illustrated in FIG. 10(c). However, according to one embodiment ofthe invention, where the color space is not limited to 0 to 255, thecolor data greater than 255 is not lost or clipped when the redcomponent is shifted by 120 as illustrated in FIG. 10(d). Since the peakvalues are not lost using the invention, when the red component isshifted back, all of the original information still remains asillustrated in FIG. 10(e).

[0083] Another clipping example is cubic interpolation. It simulates thesync function and the interpolated value can be negative. The RGB48 andARGB64 formats can store those negative values without clipping.

[0084] In general, the intermediate space is made as large as possibleup to complex numbers. Quantum mechanics uses complex numbers tocalculate the wave function. However, the final observable result isexpressed as the absolute value of the wave function as the probability.Unless the complex numbers are kept in the intermediate state, thecorrect results cannot be obtained. The RGB48 and ARGB64 formats areaimed at this direction so that the intermediate states can have verywide range. The general Fourier transform produces the complex numbers.However, cosine or sine transforms are usually used to produce the realnumbers. The RGB48 or ARGB64 format can be used to store the convolutedcoefficients of sine or cosine transform which require the signednumbers.

[0085] In general, n-dimensional variables ξ₁, ξ₂, . . . ,ξ_(n) can bestored in the consecutive slots in the RGB48 and ARGB64. Then, thegeneral transform for each variable can be applied.

F(ω₁, . . . ,ω_(n))=∫dξ ₁ . . . ∫dξ _(n) g(ω₁, . . . ω_(n);ξ₁, . . .,ξ_(n))ƒ(ξ₁, . . . ,ξ_(n))   (21a)

[0086] If there are inverse transforms, the inverse transformation canbe written by

F(ξ₁, . . . ,ξ_(n))=∫dω ₁ ∫dω _(n) G(ξ_(n);ω₁, . . . ,ω_(n))F(ω₁, . . .,ω_(n))   (21b)

[0087] In both cases, the integral can be replaced with the summation,Σ, if the considering variable is discrete. The examples of thosetransforms are Fourier transform, (discrete) Cosine and Sine transforms,Laplace transforms, etc. In addition, box filters and other filters canalso be used.

[0088] When the variable is a complex number, it can be saved in twocomponents, one for the real part and the other for the imaginary part.The above equations can be used for the complex number and saved in theRGB48 and ARGB64 formats as well as in their variation forms.

[0089] JPEG compression uses DCT (Discrete Cosine Transform),quantization, and Huffman encoding. In the lossy mode, either DCT orquatization is used. Since all of the above algorithms are well definedin negative numbers, JPEG compression algorithms can be used to compressRGB48 and ARGB64 images. Since those image formats are not defined inJPEG itself, the encoder and decoder need to be modified to be able tohandle them.

[0090] Although the invention has been described in connection with thepreferred embodiments, it will be understood by those skilled in the artthat many modifications can be made thereto within the scope of theclaims which follow. Accordingly, it is not intended that the scope ofthe invention be limited by the above description, but that it bedetermined by reference to the claims that follow.

1. A method for providing representation of high quality, substantiallyusually error-free color in images, comprising the steps of: mappingcolor to color data values in an expanded space, wherein said expandedcolor space includes an alpha channel for defining the translucency ofthe color between a range of super-transparent and super-opaque; andlabeling an image determined by mapped color values as an expanded colorspace image.
 2. The method according to claim 1, wherein the alphachannel extends less than 0 and beyond 1.0 when normalized to 1.0. 3.The method according to claim 2, wherein said alpha channel value rangesbetween −4 and
 4. 4. A method for representing at least one of supertransparent and super opaque colors using an alpha channel, comprisingthe steps of: representing color data values or perceptually visiblesuper transparent/super opaque data values in a colorspace; and labelingan image determined by the perceptually visible super transparent/superopaque data values as a super transparent/super opaque colorspace image.5. The method according to claim 4, wherein the alpha channel extendsless than 0 and beyond 1.0 when normalized to 1.0.
 6. The methodaccording to claim 5, wherein said alpha channel value ranges between −4and
 4. 7. A computer-readable medium having computer-executableinstructions for performing steps: mapping color to color data values inan expanded space, wherein said expanded color space includes an alphachannel for defining the translucency of the color between a range ofsuper-transparent and super-opaque; and labeling an image determined bymapped color values as an expanded color space image.
 8. Thecomputer-readable medium according to claim 7, wherein the alpha channelextends less than 0 and beyond 1.0 when normalized to 1.0.
 9. Thecomputer-readable medium according to claim 8, wherein said alphachannel value ranges between −4 and
 4. 10. A data structure for storingimage information for each component of the image, comprising: a signfield for defining whether an integer is positive or negative; aninteger field for defining said integer, wherein said integer defines asuper or under saturated value for the components; a decimal field fordefining fine detail information of the color components.
 11. The datastructure according to claim 10, wherein the integer field comprises onebit for defining 2 integer values.
 12. The data structure according toclaim 11, wherein said two integer values are 0 and
 1. 13. The datastructure according to claim 10, wherein the integer field comprise twobits for defining four integer values.
 14. The data structure accordingto claim 10, wherein the data structure is used to store images whichare 32 bit XsRGB formatted.
 15. The data structure according to claim10, wherein the data structure is used to store images which are 36 bitXsRGB formatted.
 16. The data structure according to claim 10, whereinthe data structure is used to store images which are 40 bit XsRGBformatted.
 17. The data structure according to claim 10, wherein saiddecimal field comprises 9 bits and said fine detailed information has512 levels.
 18. The data structure according to claim 10, wherein saiddecimal field comprises 10 bits and said fine detailed information has1024 levels.
 19. The data structure according to claim 10, wherein saiddecimal field comprises 11 bits and said fine detailed information has2048 levels.
 20. A data structure for storing image information for eachcomponent of an image, comprising: a sign field for defining whether aninteger is negative or positive; an integer field for defining saidinteger, wherein said integer defines a super or under saturated valuefor the color and alpha components; a decimal field for defining finedetailed information of the color and alpha components.
 21. The datastructure according to claim 20, wherein the integer field comprises onebit for defining 2 integer values.
 22. The data structure according toclaim 21, wherein said two integer values are 0 and
 1. 23. The datastructure according to claim 20, wherein the integer field comprise twobits for defining four integer values.
 24. The data structure accordingto claim 20, wherein the data structure is used to store images whichare 40 bit XsARGB formatted.
 25. The data structure according to claim20, wherein the data structure is used to store images which are 48 bitXsARGB formatted.
 26. The data structure according to claim 20, whereinsaid decimal field comprises 9 bits and said fine detailed informationhas 512 levels.
 27. The data structure according to claim 20, whereinsaid decimal field comprises 10 bits and said fine detailed informationhas 1024 levels.